package com.microservice.common.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 邮件配置属性
 */
@Data
@Component
@ConfigurationProperties(prefix = "spring.mail")
public class MailProperties {
    
    /**
     * 是否启用邮件功能
     */
    private Boolean enabled = false;
    
    /**
     * SMTP 服务器地址
     */
    private String host;
    
    /**
     * SMTP 服务器端口
     */
    private Integer port = 587;
    
    /**
     * 用户名
     */
    private String username;
    
    /**
     * 密码或授权码
     */
    private String password;
    
    /**
     * 发件人邮箱
     */
    private String from;
    
    /**
     * 发件人名称
     */
    private String fromName = "系统通知";
    
    /**
     * 编码
     */
    private String defaultEncoding = "UTF-8";
    
    /**
     * 是否启用认证
     */
    private Boolean auth = true;
    
    /**
     * 是否启用 SSL
     */
    private Boolean sslEnable = false;
    
    /**
     * 是否启用 STARTTLS
     */
    private Boolean starttlsEnable = false;
    
    /**
     * STARTTLS 是否必需
     */
    private Boolean starttlsRequired = false;
    
    /**
     * 连接超时时间（毫秒）
     */
    private Integer connectionTimeout = 5000;
    
    /**
     * 读取超时时间（毫秒）
     */
    private Integer timeout = 5000;
    
    /**
     * 写入超时时间（毫秒）
     */
    private Integer writeTimeout = 5000;
}
